package com.xbongbong.pro.product.pojo.dto;

import com.xbongbong.paas.constant.PaasConstant;
import com.xbongbong.saas.domain.entity.*;
import com.xbongbong.saas.domain.entity.ext.ProductEntityExt;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author jiping.yang
 * @date 2021/11/24 13:38
 */
@Getter
@Setter
@ToString
public class ProductUpdateRecalculateDTO implements Serializable {

    private static final long serialVersionUID = -8032732751360847103L;
    /**
     * 需要更新的库存流水信息
     */
    private List <StockFlowBillEntity> stockFlowBillEntityList = new ArrayList<>();
    /**
     * 需要更新的批次流水信息
     */
    private List <BatchFlowBillEntity> batchFlowBillEntityList = new ArrayList<>();
    /**
     * 需要更新的入库产品关联表信息
     */
    private List <InstockProductEntity> instockProductEntityList = new ArrayList<>();
    /**
     * 需要更新的成本调整单关联表信息
     */
    private List <CostAdjustProductEntity> costAdjustProductEntityList = new ArrayList<>();
    /**
     * 需要更新的出库产品关联表信息
     */
    private List <OutstockProductEntity> outstockProductEntityList = new ArrayList<>();
    /**
     * 需要更新的合同产品关联表信息
     */
    private List <ContractProductEntity> contractProductEntityList = new ArrayList<>();
    /**
     * 需要更新的分仓成本结存信息
     */
    private List <ProductWarehouseEntity> productWarehouseEntityList = new ArrayList<>();
    /**
     * 需要更新的批次成本结存信息
     */
    private List<ProductStockEntity> productStockEntityList = new ArrayList<>();

    /**
     * 需要更新的最后一条出库库存流水信息
     */
    private Map<String, List<StockFlowBillEntity>> stockFlowListMap = new HashMap<>(PaasConstant.DEFAULT_INITIAL_CAPACITY);

    /**
     * 需要更新的最后一条出库批次流水信息
     */
    private Map<String, List<BatchFlowBillEntity>> batchFlowListMap = new HashMap<>(PaasConstant.DEFAULT_INITIAL_CAPACITY);
}
